﻿using System;
using System.Collections.Generic;

using SharedGenomics.Domain;
using SharedGenomics.DataTransfer;
using SharedGenomics.Workbench.Core;
using SharedGenomics.Workbench.Models;
using SharedGenomics.Workbench.PresentationModel;

namespace SharedGenomics.Workbench.Views
{
    public interface IAnalysisResultsFilterView : IView
    {
        IAvailableJobsModel Model { set; }
        int MinimumHeight { get; }
        void ToggleVisible();

        IEnumerable<ValueDisplayItem<DateTime>> JobSubmissionTimes { set; }
        IEnumerable<ValueDisplayItem<JobType>> JobTypes { set; }
        IEnumerable<ValueDisplayItem<JobStatus>> JobStatuses { set; }

        DateTime SelectedSubmissionTime { get; set; }
        JobType SelectedJobType { get; set; }
        JobStatus SelectedJobStatus { get; set; }
        JobDetails SelectedJob { get; }
        bool IsLoadJobEnabled { set; }
        bool IsFindJobsEnabled { set; }
        bool IsFindJobsProgressBarVisible { set; }

        event EventHandler FindJobsClicked;
        event EventHandler LoadJobClicked;
        event EventHandler SelectedJobChanged;
        event EventHandler ToggleVisibleClicked;
    }
}
